package Dao;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;



public class baseDao {
	public int basicUpdate(String sql,Object... params){
		Connection connection = null;
		PreparedStatement pstmt = null;
		try {
			//从DBCP连接池中获取Connection对象
			connection = DBUtils.getConnection();
			//使用sql语句创建PreparedStatement对象
			pstmt = connection.prepareStatement(sql);
			//为sql语句中的参数赋值
			for (int i = 0; i < params.length; i++) {
				pstmt.setObject(i+1, params[i]);
			}
			//执行更新操作，并返回更新成功的行数
			return pstmt.executeUpdate();
		}catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
			return 0;
		}finally{
			//关闭资源
			DBUtils.close(connection, pstmt,null);
		}
	}
	/**
	 * 通用的query方法，使用PreparedStatement对象执行任何的query语句，该方法只返回ResultSet对象，还需要自行处理ResultSet对象，生成相应的JavaBean对象和JavaBean集合对象。
	 * @param sql 待执行的query SQL语句
	 * @param params  SQL语句中的对应的参数，参数的个数为n，n大于等于0；
	 * @return 查询操作返回的结果集对象
	 */
	public ResultSet basicQuery(String sql,Object... params){
		Connection connection = null;
		PreparedStatement pstmt = null;
		try {
			//从Tomcat连接池中获取Connection对象，此处选择与上面不同的连接池只是为了验证这些方法都是有效的。
			connection =DBUtils.getConnection();
			pstmt = connection.prepareStatement(sql);
			for (int i = 0; i < params.length; i++) {
				pstmt.setObject(i+1, params[i]);
			}
			//执行查询操作并返回结果集
			return pstmt.executeQuery();
		}catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
			return null;
		}finally{
			//关闭资源
			//DBUtils.close(connection, pstmt,null);
		}
	}
}
